﻿using System;
namespace Producers.Etoimik.Xtee.Riik.Ee.Producer.Etoimik {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="MenetluseSisulineLiigitusOtsing", Namespace="http://producers.etoimik.xtee.riik.ee/producer/etoimik", Target=typeof(MenetluseSisulineLiigitusOtsing))]
    public class MenetluseSisulineLiigitusOtsingSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IMenetluseSisulineLiigitusOtsing clazz;
        
        public MenetluseSisulineLiigitusOtsingSerializer(IMenetluseSisulineLiigitusOtsing clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            if (clazz.EXCLUDE!=null) {
                Writer.WriteStartElement("EXCLUDE");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.EXCLUDE))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KaebuseProtestiLiikKL!=null) {
                Writer.WriteStartElement("KaebuseProtestiLiikKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.KaebuseProtestiLiikKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.KategooriaKL!=null) {
                Writer.WriteStartElement("KategooriaKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.KategooriaKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.SisulineLiigitusKL!=null) {
                Writer.WriteStartElement("SisulineLiigitusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.SisulineLiigitusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.ObjektID!=null) {
                Writer.WriteStartElement("ObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.ObjektID))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.PeamineMaaramiseAlus!=null) {
                Writer.WriteStartElement("PeamineMaaramiseAlus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "boolean");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdBoolean(((bool)(clazz.PeamineMaaramiseAlus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.Sisu!=null) {
                Writer.WriteStartElement("Sisu");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.Sisu))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahendusKL!=null) {
                Writer.WriteStartElement("LahendusKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LahendusKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahenduseLisainfoKL!=null) {
                Writer.WriteStartElement("LahenduseLisainfoKL");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LahenduseLisainfoKL))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahenduseKirjeldus!=null) {
                Writer.WriteStartElement("LahenduseKirjeldus");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.LahenduseKirjeldus))).ToString());
                Writer.WriteEndElement();
            }
            if (clazz.LahenduseMaaranudToimingObjektID!=null) {
                Writer.WriteStartElement("LahenduseMaaranudToimingObjektID");
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "long");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdLong(((long)(clazz.LahenduseMaaranudToimingObjektID))).ToString());
                Writer.WriteEndElement();
            }
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
            if (Reader.LocalName=="EXCLUDE") {
                if (Reader.IsElementNil()) {
                    throw new global::Xtee.Core.Exceptions.NillableNotAllowedException(">>MenetluseSisulineLiigitusOtsing>EXCLUDE");
                }
                clazz.EXCLUDE = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("EXCLUDE")).Value;
            }
            if (Reader.LocalName=="KaebuseProtestiLiikKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KaebuseProtestiLiikKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("KaebuseProtestiLiikKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="KategooriaKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.KategooriaKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("KategooriaKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="SisulineLiigitusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.SisulineLiigitusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("SisulineLiigitusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="ObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.ObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("ObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="PeamineMaaramiseAlus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.PeamineMaaramiseAlus = new global::Xtee.Core.Schema.XsdBoolean(Reader.ReadElementString("PeamineMaaramiseAlus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="Sisu") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.Sisu = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("Sisu")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahendusKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahendusKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LahendusKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahenduseLisainfoKL") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahenduseLisainfoKL = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LahenduseLisainfoKL")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahenduseKirjeldus") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahenduseKirjeldus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("LahenduseKirjeldus")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
            if (Reader.LocalName=="LahenduseMaaranudToimingObjektID") {
                if ((Reader.IsElementNil() == false)) {
                    clazz.LahenduseMaaranudToimingObjektID = new global::Xtee.Core.Schema.XsdLong(Reader.ReadElementString("LahenduseMaaranudToimingObjektID")).Value;
                }
                else {
                    Reader.Skip();
                }
            }
        }
    }
}
